﻿
using NCP.Recruiting.ApplicationServices.Messaging.Resumes;
using NCP.Recruiting.ApplicationServices.ViewModels;
using System;
namespace NCP.Recruiting.ApplicationServices.Interfaces
{
    public interface IResumeAppService
    {
        ResumeViewModel GetViewModelById(Guid id);
        SearchResponse Search(SearchRequest request);

        /// <summary>
        /// 获取搜索器
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        GetConditionBySavedSearchIdResponse GetConditionBySavedSearchId(GetConditionBySavedSearchIdRequest request);

        /// <summary>
        /// 创建搜索器
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        CreateSavedSearchResponse CreateSavedSearch(CreateSavedSearchRequest request);

        /// <summary>
        /// 更新搜索器
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        UpdateSavedSearchResponse UpdateSavedSearch(UpdateSavedSearchRequest request);

        /// <summary>
        /// 获取搜索器一览
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        GetSavedSearchListResponse GetSavedSearchList(GetSavedSearchListRequest request);

        /// <summary>
        /// 删除搜索器
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        DeleteSavedSearchResponse DeleteSavedSearch(DeleteSavedSearchRequest request);

        /// <summary>
        /// 退订
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        UnsubscribeResponse Unsubscribe(UnsubscribeRequest request);

        /// <summary>
        /// 订阅
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        SubscribeResponse Subscribe(SubscribeRequest request);

        /// <summary>
        /// 通过搜索器进行检索
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        SearchBySearcherIdResponse SearchBySearcherId(SearchBySearcherIdRequest request);

        /// <summary>
        /// 获取简历信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        GetResumeInfoResponse GetResumeInfo(GetResumeInfoRequest request);
    }
}
